import axios from 'axios'
import { useLogingEmpStore } from "@/stores/LoginEmp";
import router from "@/router";
import { ElMessage } from "element-plus";

//创建axios实例对象
const request = axios.create({
  baseURL: '/api',
  timeout: 600000
})

const loginEmpStore = useLogingEmpStore()

//添加请求拦截器
request.interceptors.request.use(function(config) {
  //在发送请求之前做些什么

  //设置config配置请求头token，这样所有axios请求中都有请求头token=令牌数据发送给服务器
  let loginEmp = loginEmpStore.getLoginEmp();
  if (loginEmp && loginEmp.token) {
    config.headers["token"] = loginEmp.token
  }
  return config;
},function(error) {
  //对请求错误做些什么
  return Promise.reject(error);
})
//axios的响应 response 拦截器
request.interceptors.response.use(
  (response) => { //成功回调
    return response.data
  },
  (error) => { //失败回调
    console.log(error)

    //如果返回状态嘛是401，路由到登录页面/login
    if(error.response && error.response.status==401 ){
      ElMessage.error("太久不来看我，登录都失效了呢，呜呜，被遗忘了")
      router.push("/login")
    }

    return Promise.reject(error)
  }
)

export default request